"""
需求：
参考项目的登录功能（登录时需要输入用户名、密码、验证码），至少设计3条测试用例
要求1：定义变量保存测试数据（包括不同测试数据对应的测试结果）
要求2：至少写出3种以上不同的数据格式
要求3：遍历测试数据并打印到控制台，数据格式“用户名：xxx 密码：xxx 验证码：xxx 期望结果：xxx”
"""
# 列表
login01 = [
    ["17777429832", 123456, 6666, "登录成功!"],
    ["17777429832", 1234, 6666, "密码错误!"],
    ["17777429832", 123456, 1111, "验证码错误!"]
]

print("列表 login01:")
# 遍历列表 login01 测试数据
for i in login01:
    print(f"用户名：{i[0]} 密码：{i[1]} 验证码：{i[2]} 期望结果：{i[3]}")  # 通过索引获取对应字段值并格式化输出

# 元组
login02 = (
    ("17777429832", 123456, 6666, "登录成功!"),
    ("17777429832", 1234, 6666, "密码错误!"),
    ("17777429832", 123456, 1111, "验证码错误!")
)
print("元组 login02:")
# 遍历元组 login02 测试数据
for j in login02:
    print(f"用户名：{j[0]} 密码：{j[1]} 验证码：{j[2]} 期望结果：{j[3]}")  # 通过索引获取对应字段值并格式化输出

print("列表元组 login03:")
# 定义变量：列表元组
login03 = [
    ("17777429832", 123456, 6666, "登录成功!"),
    ("17777429832", 1234, 6666, "密码错误!"),
    ("17777429832", 123456, 1111, "验证码错误!")
]
# 遍历列表元组 login03 测试数据
for k in login03:
    print(f"用户名：{k[0]} 密码：{k[1]} 验证码：{k[2]} 期望结果：{k[3]}")  # 通过索引获取数据并打印

# 定义变量：列表字典
login04 = [
    {"username": "17777429832", "password": "123456", "code": "6666", "result": "登录成功!"},
    {"username": "17777429832", "password": "1234", "code": "6666", "result": "密码错误!"},
    {"username": "17777429832", "password": "123456", "code": "1111", "result": "验证码错误!"}
]
print("列表字典 login04:")
# 遍历字典 login04 测试数据  方式1 使用.get()方法获取字典中键对应的值，避免键不存在时报错
for z in login04:
    print(f"用户名：{z.get('username')} 密码：{z.get('password')} 验证码：{z.get('code')} 期望结果：{z.get('result')}")

# 方式2 与方式1效果相同，但如果键不存在则会报错
# for b in login04:
#     print(f"用户名：{b['username']} 密码：{b['password']}： 验证码：{b['code']} 期望结果：{b['result']}")
